package com.example.academic_affairs_system.service.impl;

import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.academic_affairs_system.exception.SystemException;
import com.example.academic_affairs_system.mapper.AasUserRoleMapper;
import com.example.academic_affairs_system.model.entity.AasUserRole;
import com.example.academic_affairs_system.service.IAasUserRoleService;
import org.springframework.stereotype.Service;

/**
 * 服务实现类
 *
 * @author hjx
 * @since 2023-01-31
 */
@Service
public class AasUserRoleServiceImpl extends ServiceImpl<AasUserRoleMapper, AasUserRole>
    implements IAasUserRoleService {
  @Override
  public long getRoleIdByUserId(long userId) {
    AasUserRole aasUserRole =
        baseMapper.selectOne(
            Wrappers.<AasUserRole>lambdaQuery().eq(AasUserRole::getUserId, userId));
    // 用户没有指定角色
    if (aasUserRole == null) {
      throw new SystemException(-999, "该用户信息不完整", "没有声明该用户的角色定位");
    }
    return aasUserRole.getRoleId();
  }

  @Override
  public int addRelated(long userId, long roleId) {
    AasUserRole aasUserRole = new AasUserRole();
    aasUserRole.setRoleId(roleId);
    aasUserRole.setUserId(userId);
    return baseMapper.insert(aasUserRole);
  }
}
